package com.jzo2o.orders.manager.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.msg.TradeStatusMsg;
import com.jzo2o.orders.base.model.domain.Orders;
import com.jzo2o.orders.manager.model.dto.request.OrdersPayReqDTO;
import com.jzo2o.orders.manager.model.dto.response.OrdersPayResDTO;

import java.util.List;

/**
 * <p>
 * 下单服务类
 * </p>
 *
 * @author itcast
 * @since 2023-07-10
 */
public interface IOrdersCreateService extends IService<Orders> {
    /**
     * 订单支付
     * @param id 订单id
     * @param ordersPayReqDTO 订单信息
     * @return OrdersPayResDTO
     */
    OrdersPayResDTO pay(Long id, OrdersPayReqDTO ordersPayReqDTO);

    /**
     * 查询订单支付结果
     * @param id 订单id
     * @return OrderPayResDTO
     */
    OrdersPayResDTO payResult(Long id);

    /**
     * 支付成功更新订单信息
     * @param tradeStatusMsg 订单信息
      */
    void updateOrderInfo(TradeStatusMsg tradeStatusMsg);

    /**
     * 查询超时订单id列表
     * @param count 数量
     * @return 订单id列表
     */
    List<Orders> queryOverTimePayOrdersListByCount(Integer count);
}
